package com.cskaoyan.javase.oop2._0encapsulate;

/**
 * 性别的命名,不推荐布尔类型的isMale/isFemale
 * Getter/Setter方法格式十分固定,推荐使用IDEA快捷键alt + insert生成它
 * 对于boolean类型的成员变量来说，Getter方法的名字比较特殊
 * 采用isXxx（Xxx是变量名）的形式。
 * 这时如果该boolean类型的成员变量本身就叫isXxx时，就会出现方法名和成员变量名一致或者错误的情况
 * 这在某些情况下会带来一些问题
 * 主要是在后面框架的阶段.
 *
 *
 * 最后结束实际开发,说一下实际开发中Getter/Setter方法的应用:
 *      如果该类下的某些私有成员变量,对外有访问的需求
 *      那么可以用快捷键自动生成Getter/Setter方法
 *      而且也只建议自动生成
 *      不要手写,更不要去改动Getter/Setter方法
 *      实际开发中的Getter/Setter方法普遍都是为了让框架去调用的
 *      程序员本身很少去直接使用Getter/Setter方法
 *
 *      对于一个类来说,Getter/Setter方法格式固定,且没有太大的实际意义
 *      所以把它放在一个类结构的最后面(可以遵守,但不强求)
 *
 *
 * @since 16:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {

    }


}


class Teacher {
    private double salary;
    private boolean isMale;
    private boolean flag;

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public boolean isMale() {
        return isMale;
    }

    public void setMale(boolean male) {
        isMale = male;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
}

class Cat {
    private String name;
    private String breed;
    private double price;
    private String color;

    public Cat() {
    }

    public Cat(String name) {
        this.name = name;
    }

    public Cat(String name, String breed) {
        this.name = name;
        this.breed = breed;
    }

    public Cat(String name, String breed, double price, String color) {
        this.name = name;
        this.breed = breed;
        this.price = price;
        this.color = color;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}